/**
 * 扩展运算符 ... : 数组或类数组展开成逗号分割的值
 * rest ... 把逗号隔开的值 合成一个数组
 */

 function foo(a,b,c){
  console.log(a,b,c)
 }
 let arr = [1,2,3]
 foo(...arr)

 // ES5 合并数组
 let arr2 = [4,5,6]
 Array.prototype.push.apply(arr,arr2)
 console.log(arr)

 // ES6 合并数组
 arr.push(...arr2)
 console.log(arr)

 let str = 'aqie'
 let arrStr = [...str]
 console.log(arrStr)

 // 传入实参不确定 
 function foo2(a,b,c){
  console.log(a,b,c)
  let sum = 0
  // ES5 不定参数求和
  Array.prototype.forEach.call(arguments, function(item){
    sum += item
  })
  // ES6 
  Array.from(arguments).forEach(function(item){
    sum += item
  })
  return sum
 }

 console.log(foo2(1,2,3))


 // 将参数 聚合成数组
 function foo3(...args){
   console.log(args)
   let s = 0
   args.forEach(function(i){
      s += i
   })

   args.forEach(i => {
     s += i
   })
   return s
 }
 console.log(foo3(1,2,3))

 let [x, ...y] = [1,2,3]
